package com.yuantu.judiciary.model.domain;

import com.yuantu.judiciary.model.BaseDO;
import com.yuantu.judiciary.model.enums.InviteCodeType;
import lombok.Data;
import org.hibernate.annotations.Comment;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.*;
import java.sql.Timestamp;

/**
 * 邀请码类别信息表
 *
 * @author syw
 * @since 2023-06-12
 **/
@Data
@Entity
@DynamicUpdate
@Table(name = "invite_code")
public class InviteCodeDO extends BaseDO {

    /**
     * 邀请码类型
     */
    @Enumerated(EnumType.STRING)
    @Column(length = 10, nullable = false)
    @Comment("邀请码类型")
    private InviteCodeType type;

    /**
     * 邀请码（唯一）
     */
    @Comment("邀请码（唯一）")
    private String inviteCode;

    /**
     * 使用人id
     */
    @Comment("使用人id")
    private Long operatorId;

    /**
     * 邀请码可使用次数
     */
    @Comment("邀请码可使用次数")
    private Integer useTimes;

    /**
     * 套餐免费赠送次数
     */
    @Comment("套餐免费赠送次数")
    private Integer vipUseTimes;

    /**
     * 过期时间
     */
    @Column(columnDefinition = "datetime")
    @Comment("过期时间")
    private Timestamp expiresTime;

}
